import { createVNode, render } from 'vue'
import Msg from './index.vue'

/**
 * 需求
 * Message({ type: 'error', text: '登录失败',time:3000 })
 * 调用方法支持传参，显示定制的消息提示框
 * 指定时间内自动关闭消息提示框
 */
export default ({ type, text, time = 3000 }) => {
  /**
   * 把消息提示框组件使用createVNode方法，创建虚拟DOM
   * 渲染虚拟DOM
   * 控制被创建元素显示隐藏
   */
  const msg = createVNode(Msg, { type, text })
  render(msg, document.body)
  // 调用组件变量，控制显示隐藏
  msg.component.setupState.isShow = true
  setTimeout(() => {
    msg.component.setupState.isShow = false
  }, time)
}
